home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 6639 / 6639.xpi / chrome / easydragtogo.jar / content / easydragtogoConfig.js < prev    next >
Text File  |  2008-06-11  |  6KB  |  158 lines

  1. // Code by Sunwan
  2. //
  3.  
  4. var easyDragSettings = {
  5.  
  6.     definedDirections:  ['RLUD', 'UD', 'RL', 'A', 'N'],
  7.     targets:            ['text', 'link', 'img'],
  8.     dir:                ['A', 'R', 'L', 'U', 'D'],
  9.     direction:          ['any', 'right', 'left', 'up', 'down'],
  10.  
  11.     onLoad: function() {
  12.       for each (var tag in this.targets) {
  13.         var actStr = easyDragUtils.getPref(tag + '.actionSets', '|');
  14.         var dirDom = document.getElementById('direction-' + tag);
  15.         if (!dirDom) continue;
  16.         var index, sIndex = 4;
  17.         if (actStr) {
  18.           var aDirs = actStr.split('|')[0];
  19.           for (index = 0; index < this.definedDirections.length; index++) {
  20.             if (aDirs == this.definedDirections[index]) {
  21.               sIndex = index;
  22.               break;
  23.             }
  24.           }
  25.         }
  26.  
  27.         dirDom._selectedIndex = sIndex;
  28.  
  29.         for (var d in this.dir) {
  30.           var aMenu = document.getElementById(tag + '-edg-' + this.direction[d]);
  31.           if (!aMenu) continue;
  32.           var act = "";
  33.           var re = new RegExp(this.dir[d] + ':(.+?)(\\s+[ARLUD]:|$)', '');
  34.           try { if ( re.test(actStr) ) act = RegExp.$1; } catch(e) {}
  35.           if (act) {
  36.             if (act.indexOf("search-") == 0)
  37.               this.setSearchEngine(aMenu, act);
  38.             else
  39.               aMenu._selectedItem = act;
  40.           }
  41.           else
  42.             aMenu._selectedItem = "do-nothing";
  43.         }
  44.       }
  45.  
  46.       var aPref = easyDragUtils.getPref("fromContentOuter.text", "search-c-fg");
  47.       if (aPref.indexOf("search-") == 0)
  48.         this.setSearchEngine(document.getElementById("textFromContentOuter"), aPref);
  49.       else
  50.         document.getElementById("textFromContentOuter")._selectedItem = aPref;
  51.       document.getElementById("linkFromContentOuter")._selectedItem =
  52.             easyDragUtils.getPref("fromContentOuter.link", "link-fg");
  53.       document.getElementById("saveDomainName").checked = easyDragUtils.getPref("saveDomainName", true);
  54.       document.getElementById("imgSaveFloder-text").value = easyDragUtils.getDownloadFolder();
  55.     },
  56.  
  57.     onAccept: function() {
  58.       for each (var tag in this.targets) {
  59.         var actStr = "";
  60.         var dirDom = document.getElementById('direction-' + tag);
  61.         if (!dirDom) continue;
  62.  
  63.         actStr = this.definedDirections[dirDom._selectedIndex] + '|';
  64.         for (var d in this.direction) {
  65.           var aMenu = document.getElementById(tag + '-edg-' + this.direction[d]);
  66.           if (aMenu) {
  67.             if (/^search-(fg|bg|cur)$/.test(aMenu._selectedItem))
  68.               actStr += ' ' + this.dir[d] + ':search-' + aMenu._engine + '-' + RegExp.$1;
  69.             else
  70.               actStr += ' ' + this.dir[d] + ':' + aMenu._selectedItem;
  71.           }
  72.         }
  73.  
  74.         easyDragUtils.setPref(tag + '.actionSets', actStr);
  75.       }
  76.  
  77.       aMenu = document.getElementById("textFromContentOuter");
  78.       if (/^search-(fg|bg|cur)$/.test(aMenu._selectedItem))
  79.         actStr = 'search-' + aMenu._engine + '-' + RegExp.$1;
  80.       else
  81.         actStr = aMenu._selectedItem;
  82.       easyDragUtils.setPref("fromContentOuter.text", actStr);
  83.       easyDragUtils.setPref("fromContentOuter.link", document.getElementById("linkFromContentOuter")._selectedItem);
  84.       easyDragUtils.setPref("saveDomainName", document.getElementById("saveDomainName").checked);
  85.       easyDragUtils.setPref("img.folder", document.getElementById("imgSaveFloder-text").value);
  86.     },
  87.  
  88.     rstDefault: function() {
  89.       var prefNames = easyDragUtils.pref.getChildList( "", {} );
  90.       for each (var aPref in prefNames) {
  91.         if (aPref.indexOf("custom.") != 0)
  92.           try { easyDragUtils.pref.clearUserPref(aPref); } catch(e) {}
  93.       }
  94.  
  95.       this.onLoad();
  96.     },
  97.  
  98.     browseDir: function() {
  99.       var dirDom = document.getElementById("imgSaveFloder-text");
  100.       var picker = Components.interfaces.nsIFilePicker;
  101.       var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(picker);
  102.  
  103.       fp.init(window, null, picker.modeGetFolder);
  104.  
  105.       try {
  106.         var dir = Components.classes["@mozilla.org/file/local;1"]
  107.                     .createInstance(Components.interfaces.nsILocalFile);
  108.         dir.initWithPath( dirDom.value );
  109.         fp.displayDirectory = dir;
  110.       } catch (e) {}
  111.  
  112.       if ( fp.show() == picker.returnOK )
  113.         dirDom.value = fp.file.path;
  114.     },
  115.  
  116.     setSearchEngine: function(menu, act) {
  117.       if ( /^search-(.+?)-?(fg|bg|cur)$/.test(act) ) {
  118.         menu._selectedItem = "search-" + RegExp.$2;
  119.         var engineName = RegExp.$1;
  120.         engineName ? (menu._engine = engineName) : (menu._engine = "c");
  121.       }
  122.       else {
  123.         menu._selectedItem = "search-fg";
  124.         menu._engine = "c";
  125.       }
  126.     },
  127.  
  128.     createEnginesList: function(popup) {
  129.       if (popup.childNodes.length > 3) return;
  130.       var ss = Components.classes["@mozilla.org/browser/search-service;1"]
  131.                 .getService(Components.interfaces.nsIBrowserSearchService);
  132.       if (!ss) return;
  133.       var engines = ss.getEngines({});
  134.       if (ss.currentEngine)
  135.         popup.childNodes[0].label += "[" + ss.currentEngine.name + "]";
  136.       if (ss.defaultEngine)
  137.         popup.childNodes[1].label += "[" + ss.defaultEngine.name + "]";
  138.       for (var i = 0; i < engines.length; i++) {
  139.         var m = popup.appendChild(document.createElement("menuitem"));
  140.         m.label = m.value = engines[i].name;
  141.       }
  142.     },
  143.  
  144.     updateImgFloderStatus: function() {
  145.       var items = ["img-edg-any", "img-edg-up", "img-edg-down", "img-edg-right", "img-edg-left"];
  146.       var enabled = false;
  147.       for each (var it in items) {
  148.         try {
  149.           enabled = enabled || !document.getElementById(it)._disabled &&
  150.                       document.getElementById(it)._selectedItem == "save-df-img";
  151.         } catch(e) {}
  152.       }
  153.       document.getElementById("imgSaveFloder-text").disabled =
  154.       document.getElementById("imgSaveFloder-browserButton").disabled =
  155.       document.getElementById("saveDomainName").disabled = !enabled;
  156.     }
  157. };
  158.